今天是最後一天,讓我們繼續來介紹一下測試的夥伴
我們昨天介紹了Test Double的Stub夥伴,今天要來介紹另一個Mock陣營的
Mock陣營是用來驗證並模擬互動結果的工具。
Mock主要是用來測試SUT使用DOC的Test Double,它主要是驗證SUT的行為。簡單來說就是測試SUT是否有正確的呼叫DOC! 我們不在意DOC是否有執行正確,只在乎是否有呼叫DOC成功。因此我們只要把Mock傳給SUT,讓它呼叫Mock後,有呼叫成功就是測試成功了。
這次用作披薩來舉例子了XD
假設我們要測試烤箱是否有好好的烤披薩! 對我們來說烤箱是SUT,而披薩則是DOC,我們只在乎烤箱是否有真的烤東西,放披薩(DOC)進去烤,因此我們只需要知道烤箱(SUT)是否有烤(呼叫)披薩(DOC),我們不用在意披薩到底是好了嗎? 還是焦掉了,我們只需要知道是否有烤過就好了XD
聽起來很帥,感覺SPY就是要潛入敵陣,然後收集情報給本陣營的!
SPY是用來驗證SUT對DOC造成的效果,剛剛的Mock是在乎是否有用到DOC,SPY則是是否有正確的用好DOC! 我們會在意DOC是否有執行正確,SUT有正確的對它進行影響。
再次以烤披薩來舉例XD
跟剛剛一樣,我們要測試烤箱(SUT)是否有好好的烤披薩(DOC),這次我們就要好好的監測披薩的溫度,上面的料是否都熟了等,我們在意披薩烤出來的品質。它不能是焦的!
以程式來說,我們就會用把SPY傳給SUT,讓SUT呼叫SPY,看SPY的結果是否是正確的!
終於結束30天的旅程了,中間經歷了幾次連假、去日本旅行、加班;說長不長,說短不短的旅程,也感謝讀完的讀者們,感覺這次介紹了蠻多Test的概念,希望大家也能更好的運用測試,Kotlin也用得越來越順手XD